package com.example.ymm.modules1.mapper.hl;

import com.example.ymm.base.CoreMapper;
import com.example.ymm.modules1.entity.hl.yw.YwMoneyAffirmLog;
import com.example.ymm.modules1.query.hl.*;
import com.example.ymm.modules1.service.dto.heng.ExcludeFaPiaoItem;
import com.example.ymm.modules1.service.dto.heng.FaPiaoItem;
import com.example.ymm.modules1.service.dto.heng.QiChuItem;
import com.example.ymm.modules1.service.dto.heng.YuShouItem;
import com.example.ymm.modules1.service.dto.ms.CountMoneyUserDto;
import com.example.ymm.modules1.service.dto.ms.MsMoneyAffirmDto;
import com.example.ymm.modules1.service.dto.ms.MsMoneyAffirmOrderDto;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.math.BigDecimal;
import java.util.List;

@Repository
@Mapper
public interface YwMoneyAffirmLogMapper extends CoreMapper<YwMoneyAffirmLog> {

   List<MsMoneyAffirmDto> msMoneyAffirmList(YwMoneyAffirmLogQueryCriteria criteria);


   /**
    * 迪卡侬抽成待确认列表
    * @param criteria
    * @return
    */
   List<MsMoneyAffirmOrderDto> dklMoneyAffirmList(YwMoneyAffirmLogQueryCriteria criteria);



   Long getMaxNum();


   /**
    * 收款确认详情
    */
   List<FaPiaoItem> shouKuanQueRenItemList(FaPiaoItemQueryCriteria criteria);


   /**
    * 收款确认详情 所有 未排除选项
    */
   List<FaPiaoItem> shouKuanQueRenItemAllList(FaPiaoItemQueryCriteria2 criteria2);

   /**
    *  已排除 收款确认详情
    */
    List<ExcludeFaPiaoItem> excludeShouKuanQueRenList(FaPiaoItemQueryCriteria criteria);


   /**
    * 预收款详情
    */
   List<YuShouItem> yushoukuanItemList(FaPiaoItemQueryCriteria criteria);


   /**
    * 数据-篡改 同步业务结算列表
    * @param criteria
    * @return
    */
   List<MsMoneyAffirmDto> msChangeAffirmList(YwMoneyAffirmLogQueryCriteria criteria);


   /**
    *    业务统计 部门金额
    */
   List<CountMoneyUserDto> countDeptTotalLog(YwMoneyAffirmLogCountQueryCriteria criteria);


   /**
    * 统计订单编号金额
    * @param criteria
    * @return
    */
   List<CountMoneyUserDto> countApproverNoTotal(YwMoneyAffirmLogCountQueryCriteria criteria);



   BigDecimal sumApproverNo(YwMoneyAffirmLogQueryCriteria criteria);


   /**
    * 统计 部门 订单总金额
    */
   BigDecimal sumDeptAllPrice(YwMoneyAffirmLogCountQueryCriteria criteria);


   /**
    * 期初数据
    * @param criteria
    * @return
    */
   List<QiChuItem> qiChuItemList(QiChuQueryCriteria criteria);


   QiChuItem qiChuItemOne(QiChuQueryCriteria criteria);


   /**
    * 查看已抽成记录
    */
   List<YwMoneyAffirmLog> getPassAffirmList(YwMoneyAffirmLogQueryCriteria criteria);


}